package cn.springsoter.core.sms.model.dto;

import cn.springsoter.core.sms.enums.CompanyEnum;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Collections;
import java.util.Date;
import java.util.List;

/**
 * 基础短信消息类
 * @author dws
 */
@Data
@Accessors(chain=true)
@NoArgsConstructor
public class BaseSMSMessageDTO {
    /**
     * 手机号
     * 必填，多个表示给所有号码发送相同内容，最多1000个
     */
    private List<String> phones;
    /**
     * 公司名称
     * 必填
     */
    private CompanyEnum company;
    /**
     * 短信签名（产品名）
     * 必填，注意不需要括号包裹
     */
    private String sign;
    /**
     * 短信内容
     * 必填，最多1000个汉字。内容中不要出现【】[]这两种方括号，该字符为签名专用
     */
    private String content;

    /**
     * 定时发送时间
     * 可选，为{@code null}或早于当前时间则立即发送。
     * 支持分钟级别定时
     */
    private Date sendTime;

    public BaseSMSMessageDTO(List<String> phones, CompanyEnum company, String sign, String content) {
        this.phones = phones;
        this.company = company;
        this.sign = sign;
        this.content = content;
    }
    public BaseSMSMessageDTO(String phone, CompanyEnum company, String sign, String content) {
        this(Collections.singletonList(phone), company, sign, content);
    }
}
